package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

/**
 * 元素的eq
 * */
public class CollectionDemo {
    public static void main(String[] args) {
        Collection c = new ArrayList();
       // Collection c =new HashSet();
        c.add(new Point(1,2));
        c.add(new Point(3,4));
        c.add(new Point(5,6));
        c.add(new Point(7,8));
        c.add(new Point(9,10));
        c.add(new Point(3,4));
        /*
        * 集合重写了toString方法，格式为：
        * [元素1.toString,元素2.toString，则输出集合时内容不够直观]*/
        System.out.println(c);


        Point p = new Point(1,2);
        /*
        * 对于Set集合而言，不可以存放重复元素，而是否重复元素是依靠元素的
        * equals方法来比较的，所有如果元素没有妥善重写equals(使用Object提供的equals时为比较)
        * 则如果为两个不同对象就算元素内容相同equals比较结果也是false，
        * 妥善重写后，内容相同的元素是无法存入集合两次的
        * */
        c.add(p);
        System.out.println(c);
        System.out.println("----------");


        Point p2 = new Point(3,4);
        /*
        contains:包含
        boolean contains(Object o)
        判断当前集合是否包含给定元素，若包含则返回true
        集合判断包含元素的逻辑是看元素与集合现有元素是否存在equals比较
        为true的情况，若存在则集合认为包含该元素
        * */
        boolean contains = c.contains(p2);
        System.out.println("包含："+contains);
        System.out.println("------------------");

        /*remove:移除
        * boolean remove(Object o)
        * 从当前集合中删除给定元素，删除的是与给定元素equals比较为true的元素
        * 注意：对于可重复的元素，删除的是第一个与给定元素equals比较为true的元素*/
        c.remove(p2);
        System.out.println(c);


    }
}
